Graphics-intensive applications, such as computer aided design (CAD) programs, video games, and real-time video processing applications, are becoming increasingly popular. To meet the graphics demands imposed by such programs, most modern computers include a graphics card (also known as a graphics accelerator card, a video card, a display adapter, etc.). A graphics card provides additional processing capability to perform much of the graphics processing necessary to render an image on a display. By doing so, the graphics card takes much of the graphics-processing burden off of the computer's central processing unit (CPU), which enables the CPU to perform other tasks.
A graphics card typically comprises a specialized processor customized for processing graphics, and a video memory. The specialized processor obtains graphics data from the computer's system memory (which is populated by the CPU), processes and stores the graphics data into the video memory, and provides, at a later time, the graphics data from the video memory to a display for rendering to a user. The video memory, which typically takes the form of a first-in-first-out (FIFO) memory, outputs data at a regular rate to a display to enable the display to render a proper image. In many ways, the video memory can be viewed as a graphics data storage tank, draining at a regular rate from the bottom, and occasionally getting refilled at the top with graphics data from the computer's system memory. In some computer architectures, because the system memory is managed by the CPU, the graphics card cannot access the system memory directly, but rather has to go through the CPU. In such architectures, the graphics card can only access the system memory, and hence, can only refill the video memory with graphics data, when the CPU is available. As will be discussed below, this can impose additional requirements on the graphics card.
In many computer systems, such as portable computer systems (e.g. notebooks, handhelds, laptops, etc.), power consumption is a major concern. To minimize power consumption, some systems dynamically adjust the operational parameters (e.g. operating frequency and power usage) of the CPU to fit the immediate needs. For example, if the CPU is currently doing very little processing, then the CPU lowers its operating frequency to reduce power consumption. On the other hand, if the CPU is executing a processing-intensive application, then it raises its operating frequency to the maximum.
Each adjustment of the operational parameters requires some CPU downtime, during which the CPU is not available. In some systems, there are as many as five (or more) possible operating frequency levels. Typically, each adjustment only changes the operating frequency from the current level to the next higher or lower level. Thus, in a system where there are five frequency levels, to get from the highest level to the lowest level, or vice versa, four adjustments need to be made. During all of these adjustment periods, the CPU is unavailable. Depending on the computer's use pattern, such adjustments can take place on a fairly frequent basis. As a result, in a computer system in which the operational parameters of a CPU are dynamically adjusted, there can be significant CPU downtime.
As a general rule, even when a CPU is experiencing down time, the graphics card still needs to keep providing graphics data to the display. If the graphics card does not do so, the user will experience noticeable and unpleasant “glitches” in the displayed image. Thus, even when the CPU is not available, graphics data is still being drained from the video memory of the graphics card. To prevent the video memory from running out of graphics data, the video memory needs to be refilled. To refill the video memory, the graphics card needs to access the system memory. However, as noted previously, in some architectures, the graphics card cannot access the system memory when the CPU is unavailable. Consequently, in such architectures, the graphics card is caught in a difficult situation: it has to keep providing graphics data from its video memory to a display during CPU downtimes, yet it cannot refill its video memory with graphics data during these downtimes.
To compensate for such a situation, it is possible to increase the size of the video memory to enable the graphics card to store more graphics data to anticipate the CPU downtimes. However, video memory is quite expensive, and increasing the size of the video memory will add significant cost to the graphics card. In the graphics card industry, cost is a major competitive factor; thus, increasing a card's cost will significantly decrease the demand for that card.